package com.tyning.newcode.jz32_2;

/**
 * 剑指 Offer 32 - I. 从上到下打印二叉树
 * 从上到下打印出二叉树的每个节点，同一层的节点按照从左到右的顺序打印。
 * <p>
 * <p>
 * <p>
 * 例如:
 * 给定二叉树: [3,9,20,null,null,15,7],
 * <p>
 * 3
 * / \
 * 9  20
 * /  \
 * 15   7
 * 返回：
 * <p>
 * [3,9,20,15,7]
 * <p>
 * <p>
 * 提示：
 * <p>
 * 节点总数 <= 1000
 * https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-lcof/
 */

import com.tyning.utils.TreeNode;
import com.tyning.utils.TreeNodeUtil;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;

/**
 * @author haining
 */
public class Solution1 {

    public static void main(String[] args) {
        TreeNode treeNode = TreeNodeUtil.createTreeNode(new Integer[]{3, 9, 20, null, null, 15, 7});
        Solution1 solution = new Solution1();
        solution.levelOrderNew(treeNode);
    }
    List<List<Integer>> list = new LinkedList<>();
    Queue<TreeNode> queue = new LinkedList<TreeNode>();

    public List<List<Integer>> levelOrderNew(TreeNode root) {
        if (root == null){
            return new ArrayList<>();
        }
        queue.add(root);
        while (!queue.isEmpty()){



        }
        return new ArrayList<>();
    }


//    List<Integer> list = new ArrayList<>();
//    Queue<TreeNode> queue = new LinkedList<TreeNode>();
//
//    public int[] levelOrder(TreeNode root) {
//        if (root == null) {
//            return new int[]{};
//        }
//        queue.add(root);
//        setList(queue);
//        return list.stream().mapToInt(Integer::intValue).toArray();
//    }


    public void setList(Queue<TreeNode> queue) {
        if (queue.isEmpty()) {
            return;
        }
        TreeNode root = queue.poll();
//        list.add(Integer.valueOf(root.val));
        if (root.left != null) {
            queue.add(root.left);
        }
        if (root.right != null) {
            queue.add(root.right);
        }
        setList(queue);
    }


}
